﻿
//初始化
function AtvInit(){
		var param = {Fun:"advInit"};
		var res = this.post(param);
		// var start = new Date().getTime();
		// while(true)  if(new Date().getTime()-start > 100) break;
		return res.return;
	}

//结束进程（一定要结束进程，否则下次使用会出错）
function AtvEnd(){
		var param = {Fun:"advEnd"};
		var res = this.post(param);
		// var start = new Date().getTime();
		// while(true)  if(new Date().getTime()-start > 100) break;
		return res.return;
	}

//获取证书
function GetCert(CertType){
		var param = {
			Fun:"advGetCert",
			label:"LAB_USERCERT_SIG",//无用，写死1
			dwStoreType:"1",//无用，写死1
			CertType:CertType//1加密，2签名
			};
		var res = this.post(param);
		if(0==res.return){
			return res.outData;
		}
		else{
			return res.return;
		}
	}
	
//获取证书内容
function GetCertInfo(i_cert64){
		var param = {
			Fun:"advGetCertInfo",
			cert64:i_cert64
			};
		var res = this.post(param);
		if(0==res.return){
			return res.outData;
		}
		else{
			return res.return;
		}
	}
	
//签名
function SignData(i_clearText, i_digestAlgo, i_signType){
		var param = {
			Fun:"advSignData",
			label:"1",//无用，写死1
			keyPasswd:"1",//无用，写死1
			clearText:i_clearText,
			digestAlgo:i_digestAlgo,
			signType:i_signType
			};
		var res = this.post(param);
		if(0==res.return){
			return res.outData;
		}
		else{
			return res.return;
		}
	}
	
//验证签名
function AtvVerifySign(i_sigCert64, i_clearText, i_sigData64,  i_digestAlgo, i_signType){
		var param = {
			Fun:"advVerifySign",
			clearText:i_clearText,
			sigCert64:i_sigCert64,
			sigData64:i_sigData64,
			digestAlgo:i_digestAlgo,
			signType:i_signType
			};
		var res = this.post(param);
		
		return res.return;
	}
	

function GenRandom(i_length){
		var param = {
			Fun:"advGenRandom",
			length:i_length
			};
		var res = this.post(param);
		// var start = new Date().getTime();
		// while(true)  if(new Date().getTime()-start > 100) break;
		if(0==res.return){
			return res.outData;
		}
		else{
			return res.return;
		}
	}
	
function HashData(i_hashAlgo, i_clearText){
		var param = {
			Fun:"advHashData",
			hashAlgo:i_hashAlgo,
			clearText:i_clearText
			};
		var res = this.post(param);
		// var start = new Date().getTime();
		// while(true)  if(new Date().getTime()-start > 100) break;
		if(0==res.return){
			return res.outData;
		}
		else{
			return res.return;
		}
	}

//检验证书
function CheckCert(i_cert64){
		var param = {
			Fun:"advCheckCert",
			cert64:i_cert64
			};
		var res = this.post(param);
		return res.return;
	}

//统一规范请求方法
function post(reqJsonData) {
	var res = "";
	$.ajax({
		type: 'POST',
		url: "http://127.0.0.1:8888/PkiApi",
		 //url: "http://192.168.212.138:8888/PkiApi",
		data: reqJsonData,
		async: false,
		timeout:2000, //超时时间设置，单位毫秒
		dataType: "json",
		success: function(resJsondata){
			// console.log("post : "+res.return);
		   res = resJsondata;
		},
		error:function (data) {
		//	console.log("post error");
		},
		complete : function(XMLHttpRequest,status){ //请求完成后最终执行参数
　　	　　if(status=='timeout'){//超时,status还有success,error等值的情况
 　　　　　 	ajaxTimeOut.abort(); //取消请求
　　　　//　  	alert("超时");
　　　　	}
　　	}
		});
		return res;
	}

